package jm.nj.demo15mian.demo05;


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Properties;

/*
* 可以创建Person对象,调用eat方法
 * 可以创建Student对象,调用study方法
 * 可以创建Worker对象,调用work方法
 * 我们也不知道要创建哪个对象,哪个方法?
 *
 *
 * 可以把类名和方法名写入配置文件中
 * 使用IO流技术和ProPerties集合读取配置文件,把文件中的键值对保存到集合中
 * 通过反射技术,获取类名创建对象
 * 通过反射技术,获取方法名,调用方法
 *
 *
 *
* */
public class Demo {
    public static void main(String[] args) throws Exception {
        //使用IO流技术和Properties集合读取配置文件,把文件中的键值对保存到集合中
        FileReader fr = new FileReader("pro.properties");
        //创建Properties集合
        Properties prop = new Properties();
        //读取
        prop.load(fr);

        //System.out.println(prop);

        //通过反射技术,获取类名创建对象
        String className = prop.getProperty("className");
        Class clazz =Class.forName(className);
        //快速创建对象
        Object obj = clazz.newInstance();

        //通过反射,获取方法名
        String methodName = prop.getProperty("methodName");
        Method md = clazz.getMethod(methodName);

        md.invoke(obj);
    }
}
